package com.polarrose.amazon.sqs;

import java.util.List;
import java.util.Map;

public interface SqsCoreService {

	SqsQueue createQueue(String queueName) throws SqsException;

	SqsQueue createQueue(String queueName, int visibilityTimeout) throws SqsException;

	List<SqsQueue> listQueues() throws SqsException;
	
	List<SqsQueue> listQueues(String queueNamePrefix) throws SqsException;

	void deleteQueue(SqsQueue queue) throws SqsException;
	
	Map<QueueAttribute, Object> getQueueAttributes(SqsQueue queue, QueueAttribute attribute);

	void setQueueAttributes(SqsQueue queue, QueueAttribute attribute, Object value);

	SqsMessage sendMessage(SqsQueue queue, String body);

	void deleteMessage(SqsQueue queue, String receiptHandle);

	List<SqsMessage> receiveMessage(SqsQueue queue, int visibilityTimeout, int maxNumberOfMessages);

}
